﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Linq.Expressions;
using COFE.Core.Filter;

namespace COFE.Data.Filter
{
    /// <summary>
    /// Take a Entity framework query and a IFilter, 
    /// update the query based on the filter, and return.
    /// </summary>
    public interface IEntryFilterExpression<T> : IFilterExpression<T>
        where T : IEntryFilter
    {        
        Expression<Func<Entry, bool>> GetQueryExpression(IEntryFilter entryFilter, 
            IOptionFilter[] options);

        Expression<Func<Entry, bool>> GetQueryOutputExpression(IEntryFilter entryFilter,
            IOptionFilter[] options);
    }
}
